// 导入Three.js光源相关模块
import { AmbientLight, DirectionalLight } from 'three'
import { resolution } from './Params'  // 场景尺寸参数

// 创建环境光（提供基础照明，无方向性）
const ambLight = new AmbientLight(
  0xffffff,   // 白光（十六进制颜色值）
  0.6          // 光照强度（范围0-1，相当于60%亮度）
)

// 创建平行光（模拟太阳光，产生方向性阴影）
const dirLight = new DirectionalLight(
  0xffffff,    // 白光
  0.7          // 主光源强度（70%亮度）
)

// 设置平行光参数
dirLight.position.set(20, 20, 18)     // 光源三维坐标（模拟高空太阳位置）
dirLight.target.position.set(         // 光照焦点位置（场景中心点）
  resolution.x / 2,                   // X轴中心（地图宽度的一半）
  0,                                  // Y轴保持地面高度
  resolution.y / 2                    // Z轴中心（地图深度的一半）
)

// 阴影质量配置
dirLight.shadow.mapSize.set(1024, 1024)  // 阴影贴图分辨率（值越大越清晰，但更耗性能）
dirLight.shadow.radius = 7              // 阴影模糊半径（软化阴影边缘）
dirLight.shadow.blurSamples = 20        // 模糊采样次数（提升阴影边缘平滑度）

// 设置阴影相机的视锥范围（控制产生阴影的区域）
dirLight.shadow.camera.top = 30     // 可见区域顶部边界
dirLight.shadow.camera.bottom = -30 // 可见区域底部边界
dirLight.shadow.camera.left = -30   // 可见区域左边界
dirLight.shadow.camera.right = 30   // 可见区域右边界

dirLight.castShadow = true  // 启用该光源的阴影投射

// 组合光源（通常场景需要多个光源配合）
const lights = [dirLight, ambLight]

export default lights  // 导出光源配置集合